/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package logica;

import fisica.CapaFisica;
import fisica.ErgometriaEstudioCardiologiaFisica;
import hibernate.objeto.ErgometriaEstudioCardiologia;

/**
 *
 * @author Gonzalo
 */
public class ErgometriaEstudioCardiologiaLogica extends CapaLogica {

    /**
     * Crea y persiste el examen Ergometria del estudio de cardiología.
     *
     * @param datosEstudioCardiologia Los datos del estudio Ergometria
     * creado para su posterior recuperación
     * @param idErgometriaEstudioCardiologia El id del objeto
     * @return true si se agregó correctamente, false en caso contrario
     */
    public static boolean agregarErgometriaEstudioCardiologia(
            Object[] datosEstudioCardiologia,
            int[] idErgometriaEstudioCardiologia) {
        //Crea el objeto
        ErgometriaEstudioCardiologia ergometriaEstudioCardiologia =
                crearObjetoErgometriaEstudioCardiologia(datosEstudioCardiologia);

        //Persiste el objeto
        if (CapaFisica.guardarOActualizarObjeto(ergometriaEstudioCardiologia)) {
            idErgometriaEstudioCardiologia[0] = ergometriaEstudioCardiologia
                    .getIdErgometriaEstudioCardiologia();
            return true;
        } else {
            return false;
        }
    }

    /**
     * Crea el objeto Ecocardiograma.
     *
     * @param datosEstudioCardiologia Los datos del Ecocardiograma
     * @return El objeto creado
     */
    private static ErgometriaEstudioCardiologia
            crearObjetoErgometriaEstudioCardiologia(
            Object[] datosEstudioCardiologia) {

        ErgometriaEstudioCardiologia ergometriaEstudioCardiologia =
                new ErgometriaEstudioCardiologia();

        ergometriaEstudioCardiologia.setAngorErgometriaEstudioCardiologia(
                datosEstudioCardiologia[CapaLogica.
                ESTUDIO_CARDIOLOGIA_ERGOMETRIA_ANGOR].toString());

        ergometriaEstudioCardiologia.setFcBasalErgometriaEstudioCardiologia(
                (Integer)datosEstudioCardiologia[CapaLogica.
                ESTUDIO_CARDIOLOGIA_ERGOMETRIA_FC_BASAL]);

        ergometriaEstudioCardiologia.setFcMaximoEsfuerzoErgometriaEstudioCardiologia(
                (Integer)datosEstudioCardiologia[CapaLogica.
                ESTUDIO_CARDIOLOGIA_ERGOMETRIA_FC_MAXIMO_ESFUERZO]);

        ergometriaEstudioCardiologia.setMetodoErgometriaEstudioCardiologia(
                datosEstudioCardiologia[CapaLogica.
                ESTUDIO_CARDIOLOGIA_ERGOMETRIA_METODO].toString());

        ergometriaEstudioCardiologia.setProtocoloErgometriaEstudioCardiologia(
                datosEstudioCardiologia[CapaLogica.
                ESTUDIO_CARDIOLOGIA_ERGOMETRIA_PROTOCOLO].toString());

        ergometriaEstudioCardiologia.setSegmentoStErgometriaEstudioCardiologia(
                (Float)datosEstudioCardiologia[CapaLogica.
                ESTUDIO_CARDIOLOGIA_ERGOMETRIA_SEGMENTO_ST]);

        ergometriaEstudioCardiologia.setTensionArterialBasalDiastolicaErgometriaEstudioCardiologi(
                (Integer)datosEstudioCardiologia[CapaLogica.
                ESTUDIO_CARDIOLOGIA_ERGOMETRIA_TENSION_ARTERIAL_BASAL_DIASTOLICA]);

        ergometriaEstudioCardiologia.setTensionArterialBasalSistolicaErgometriaEstudioCardiologia(
                (Integer)datosEstudioCardiologia[CapaLogica.
                ESTUDIO_CARDIOLOGIA_ERGOMETRIA_TENSION_ARTERIAL_BASAL_SISTOLICA]);

        ergometriaEstudioCardiologia.setTensionArterialMaximoEsfuerzoDiastolicaErgometriaEstudio(
                (Integer)datosEstudioCardiologia[CapaLogica.
                ESTUDIO_CARDIOLOGIA_ERGOMETRIA_TENSION_ARTERIAL_MAXIMO_ESFUERZO_DIASTOLICA]);

        ergometriaEstudioCardiologia.setTensionArterialMaximoEsfuerzoSistolicaErgometriaEstudioC(
                (Integer)datosEstudioCardiologia[CapaLogica.
                ESTUDIO_CARDIOLOGIA_ERGOMETRIA_TENSION_ARTERIAL_MAXIMO_ESFUERZO_SISTOLICA]);

        ergometriaEstudioCardiologia.setUnidadesMaximoEsfuerzoErgometriaEstudioCardiologia(
                datosEstudioCardiologia[CapaLogica.
                ESTUDIO_CARDIOLOGIA_ERGOMETRIA_MAXIMO_ESFUERZO_UNIDADES].toString());

        ergometriaEstudioCardiologia.setValorMaximoEsfuerzoErgometriaEstudioCardiologia(
                (Integer)datosEstudioCardiologia[CapaLogica.
                ESTUDIO_CARDIOLOGIA_ERGOMETRIA_MAXIMO_ESFUERZO_VALOR]);

        return ergometriaEstudioCardiologia;
    }

    /**
     * Retorna el objeto ErgometriaEstudioCardiologia según el id.
     *
     * @param idErgometriaEstudioCardiologia  El id de la
     * Ergometria
     * @return El objeto ErgometriaEstudioCardiologia consultado, null si no existe
     */
    static ErgometriaEstudioCardiologia getErgometriaEstudioCardiologiaPorId(
            int idErgometriaEstudioCardiologia) {
        return ErgometriaEstudioCardiologiaFisica
                .getErgometriaEstudioCardiologiaPorId(
                idErgometriaEstudioCardiologia);
    }
}
